package com.honeywen.mymvc.leetcode;

import com.google.common.collect.Lists;

import java.util.List;

/**
 * 136. 只出现一次的数字
 * 给定一个非空整数数组，除了某个元素只出现一次以外，其余每个元素均出现两次。找出那个只出现了一次的元素。
 *
 * @author weiw@opera.com
 * @date 2018/7/3 下午5:59
 */
public class SingleNumber {

    private static int singleNumber(int[] a) {

        List<Integer> list = Lists.newArrayListWithCapacity(a.length);

        int x = 0;
        for (int i = 0; i < a.length - 1; i++) {
            for (int j = i + 1; j < a.length; j++) {

                if (a[i] == a[j]) {

                    list.add(i);
                    list.add(j);
                    break;
                }
            }

        }
        for (int i = 0; i < a.length; i++) {
            if (list.contains(i)) {
                continue;
            }
            x = a[i];
        }

        return x;
    }

    public static void main(String[] args) {
        int[] a = {1, 4, 2, 1, 2};

        System.out.println(m2(a));


        System.out.println(1 ^ 4 ^ 2 ^ 1 ^ 2);


        System.out.println(95 + 46 + 51 + 32 + 29);


    }

    private static int m2(int[] nums) {
        int index = 0;

        for (int i = 0; i < nums.length; i++) {
            index = index ^ nums[i];
        }

        return index;
    }
}
